<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task: Implement Tests</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="implement_tests">
<meta name="uma.presentationName" content="Implement Tests">
<meta name="uma.guid" content="_Viv68NOLEdyqlogshP8l4g">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc=_buG4sdOFEdyqlogshP8l4g&path=_buG4sdOFEdyqlogshP8l4g,_Viv68NOLEdyqlogshP8l4g';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_Viv68NOLEdyqlogshP8l4g"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task: Implement Tests</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">Implement Test Scripts to validate a Build of the solution. Organize Test Scripts into suites, and collaborate to ensure appropriate depth and breadth of test feedback.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Purpose</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><p>
    To implement step-by-step Test Scripts that demonstrate the solution satisfies the requirements.
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../process.openup.base/capabilitypatterns/tester_DB8DC6D0.html" guid="_Viv68dOLEdyqlogshP8l4g">Tester</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span>
<ul>
<li>
<a href="./../../process.openup.base/capabilitypatterns/analyst_E62BA6E0.html" guid="_Viv68tOLEdyqlogshP8l4g">Analyst</a>
</li>
<li>
<a href="./../../process.openup.base/capabilitypatterns/developer_4F057CA5.html" guid="_Viv689OLEdyqlogshP8l4g">Developer</a>
</li>
<li>
<a href="./../../process.openup.base/capabilitypatterns/stakeholder_B18694D9.html" guid="_Viv69NOLEdyqlogshP8l4g">Stakeholder</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../process.openup.base/capabilitypatterns/test_case_50CC2DD7.html" guid="_Vi5r8NOLEdyqlogshP8l4g">Test Case</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../process.openup.base/capabilitypatterns/software_implementation_slot_4A0321FD.html" guid="_Vi5r8tOLEdyqlogshP8l4g">[Software Implementation]</a>
</li>
<li>
<a href="./../../process.openup.base/capabilitypatterns/test_script_3F6541ED.html" guid="_Vi5r8dOLEdyqlogshP8l4g">Test Script</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../process.openup.base/capabilitypatterns/test_script_3F6541ED.html" guid="_Vi5r8dOLEdyqlogshP8l4g">Test Script</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading">Select Test Cases to implement</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Select a set of Test Cases to develop into detailed, executable Test Scripts.&nbsp;
</p>
<p>
    Work with project managers and developers to determine which Test Cases need detailed Test Scripts during the current
    iteration. At a minimum, select Test Cases for requirements that are planned in the current or next iteration.
</p>
<p>
    Perform each subsequent step in this task for each Test Script.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Design the Test Script</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Sketch an outline of the Test Script as a logical sequence of steps. Review the data requirements of the Test Case, and
    determine if existing data sets are sufficient, or if you need to develop new test data for this Test Script. Examine
    system-wide requirements that apply to this Test Script, and note where they affect the expected results of a step.
</p>
<p>
    If available, review a build that implements the scenario, or demonstrates similar functionality.
</p>Select an implementation technique for this design. At a minimum, determine if the Test Script will be manual or
automated. If the Test Case is well understood, it's best to implement an automated Test Script without first writing a
manual procedure. However, if the Test Case is new or novel, writing a manual Test Script can help validate the design of
the test and aid collaboration with other team members. See <a class="elementLinkWithType" href="./../../core.tech.common.extend_supp/guidances/guidelines/programming_automated_tests_7DA10019.html" guid="_0j5sUMlgEdmt3adZL5Dmdw">Guideline: Programming Automated Tests</a> for more details about this decision.</td>
</tr>
</table>
</div>
<div class="stepHeading">Implement the executable Test Script</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Develop a detailed, procedural Test Script based on your design. Use a request-response style that declares an exact
    input, and expects an exact output.
</p>
<p>
    Explain the pre-conditions that must be met before running this Test Script. Use temporary test data or put parameters
    in your script for data values. Ensure that each post-condition in the Test Case is evaluated by steps in the Test
    Script.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Define specific test data</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Specify data values that are specific to the Test Script or reference existing test data. For example, instead of
    specifying "a prime number", indicate an actual value such as "3."
</p>
<p>
    If the Test Script uses a dataset (such as a file or database), add the new test data to it and parameterize the Test
    Script to retrieve values from the dataset. Otherwise, add executable test data values to the steps of the Test Script.
    This applies to both manual and automated scripts.
</p>
<p>
    Identify and minimize dependencies between test data used or modified by other Test Scripts. Note dependencies in the
    Test Script.
</p>
<p>
    If necessary, create containers for your test data sets, and separate the production data from generated data.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Organize Test Scripts into suites</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Collect tests into related groups. The grouping you use depends on your test environment. Since the system under test
    is undergoing its own evolution, create your test suites to facilitate regression testing, as well as system
    configuration identification.
</p>
<p>
    For help with test suite organization, see <a class="elementLinkWithType" href="./../../core.tech.common.extend_supp/guidances/guidelines/test_suite_D54EEBED.html" guid="_0aDz0MlgEdmt3adZL5Dmdw">Guideline: Test Suite</a>.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Verify Test implementation</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Run the Test Script to verify that it implements the Test Case correctly. For manual testing, conduct a walkthrough of
    the Test Script. For automated tests, verify that the Test Script executes correctly and produces the expected result.
</p>
<p>
    Verify that the Test Script meets the criteria in <a class="elementLinkWithType" href="./../../core.tech.common.extend_supp/guidances/checklists/test_script_FBB4524E.html" guid="_0Z9tMMlgEdmt3adZL5Dmdw">Checklist: Test Script</a>.
</p>
<p>
    Add or update the Test Script(s) in configuration management.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Share and evaluate Test Scripts</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    Walk through the new or refined Test Scripts with the developers responsible for the related
    scenarios.&nbsp;Optionally, the&nbsp;analysts and the stakeholders&nbsp;also participate.
</p>
<p>
    Seek agreement that the Test Scripts correctly evaluate the expected results of the test, and that you understand the
    implementation of the requirements. If the scenario is already implemented (such as in a developer workspace), walk
    through a representative set of the Test Scripts using an implementation of the system.
</p></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="Yes" title="Yes" src="./../../images/true.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Concepts</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.tech.common.extend_supp/guidances/concepts/test_ideas_ED562B58.html" guid="_0jnYcMlgEdmt3adZL5Dmdw">Test Ideas</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Guidelines</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.tech.common.extend_supp/guidances/guidelines/maintaining_automated_test_suite_13EF3D5.html" guid="_0kF5kMlgEdmt3adZL5Dmdw">Maintaining Automated Test Suites</a>
</li>
<li>
<a href="./../../core.tech.common.extend_supp/guidances/guidelines/programming_automated_tests_7DA10019.html" guid="_0j5sUMlgEdmt3adZL5Dmdw">Programming Automated Tests</a>
</li>
<li>
<a href="./../../core.tech.common.extend_supp/guidances/guidelines/test_ideas_55AF9B0F.html" guid="_0jzlsMlgEdmt3adZL5Dmdw">Test Ideas</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
